/*
 * @lc app=leetcode.cn id=563 lang=javascript
 *
 * [563] 二叉树的坡度
 */

// @lc code=start
/**
 * Definition for a binary tree node.
 * function TreeNode(val, left, right) {
 *     this.val = (val===undefined ? 0 : val)
 *     this.left = (left===undefined ? null : left)
 *     this.right = (right===undefined ? null : right)
 * }
 */
/**
 * @param {TreeNode} root
 * @return {number}
 */
var findTilt = function(root) {
    let res = 0
    function fun(root) {
        if (!root) {
            return 0
        }
        if (!root.left && !root.right) {
            return root.val
        }
        let left = fun(root.left)
        let right = fun(root.right)
        res += Math.abs(left - right)
        return left + right + root.val
    }  
    fun(root)
    return res
};
// @lc code=end


/* 

    耻辱，想了那么久就是感觉临门一脚想不出来还要看题解，结果发现是因为 res 初始定义的不是 0 而是空字符串导致的

*/
